// 基础的，公共的配置
// 在开发模式和生成模式里都有的配置
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
  entry: "./src/index.js",
  output: {
    filename: "./js/main[hash:6].js",
    // 在出口里的路径，官方规定必须是绝径
    path: path.resolve(__dirname, "../dist")
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: "./src/index.html"
    })
  ],
  module: {
    rules: [
      {
        test: /\.html$/,
        use: "html-withimg-loader"
      },
      {
        test: /\.(png|jpg|jpeg|gif)$/,
        use: {
          loader: "url-loader",
          options: {
            // 如果小于2kb就变成base64代码插入到页面
            limit: 1204 * 2,
            // 把打包后的图片放到dist/imgs/里
            outputPath: "imgs/",
            // 给html图片loader使用的一个配置
            esModule: false
          }
        }
      },
      {
        test: /\.(eot|woff|woff2|ttf|svg)$/,
        use: {
          loader: "url-loader",
          options: {
            outputPath: "font/"
          }
        }
      },
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          // cnpm i -D babel-loader
          //  @babel/preset-env
          // @babel/core
          loader: "babel-loader",
          options: {
            presets: ["@babel/preset-env"]
          }
        }
      }
    ]
  }
};
